package org.hawk.gwt.ppc.parser.impl.mock;

import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.util.List;

import org.hawk.gwt.ppc.parser.PreprocessorParseException;

public abstract class MethodsMock {
	public final void doSomeWork() {
	}
	
	int doSomeWork(String first, String second) {
		return 0;
	}
	
	protected <T extends CharSequence> T getT(final T dflt) {
		return dflt;
	}
	
	void throwError() throws java.io.IOException, PreprocessorParseException, InvocationTargetException {
		throw new IOException();
	}
	
	@AnnotationMock1
	@AnnotationMock2(type = MethodsMock.class, value = "")
	java.lang.Class<? extends List<String>> annotated(
			@AnnotationMock1 final String name, 
			final @AnnotationMock1 @AnnotatedAnnotationMock int type) {
		return null;
	}
	
	public abstract int getInt();
	
	public int getSize(String message, Object...collection) {
		return collection.length;
	}
}
